package com.toolbox.service;

import com.toolbox.bo.AccountBO;
import com.toolbox.dto.InfraRoleDTO;
import com.toolbox.pages.Pager;
import com.toolbox.req.InfraRoleReq;

import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author Mango
 * @since 2023-12-01
 */
public interface InfraRoleService {

    /**
     * 获取——角色列表（分页）
     *
     * @param pageIndex 当前页
     * @param pageSize  每页条数
     * @param keywords  搜索框（角色名称）
     * @return 集合
     */
    Pager<InfraRoleDTO> getRolePage(Integer pageIndex, Integer pageSize, String keywords);

    /**
     * 获取——角色列表
     *
     * @return 集合
     */
    List<InfraRoleDTO> getRoleList();

    /**
     * 创建——角色
     *
     * @param req 参数
     * @param bo  当前操作人
     * @return 主键ID
     */
    Long createRole(InfraRoleReq req, AccountBO bo);

    /**
     * 更新——角色
     *
     * @param req 参数
     * @param bo  当前操作人
     * @return 主键ID
     */
    Long updateRoleById(InfraRoleReq req, AccountBO bo);

    /**
     * 删除——角色
     *
     * @param id 主键ID
     */
    void removeById(Long id);

}
